home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
DTP
/
DTP_TEX
/
3238.ZIP
/
DVIEPS2.ZIP
/
DVIDEFS.H
< prev
next >
Wrap
Text File
|
1988-11-01
|
10KB
|
322 lines
/*=======================================================================
* Program : DVIEPS
* Purpose : Epson-alike printer driver
* Date : Oct 1988
*========================================================================
* Compiler : Microsoft V5.1 C Compiler
* Linker : Microsoft V3.61 Linker
* Enviroment : MS-DOS 3.21
*========================================================================
* Edit History
*
* / / -gbm-
*
*======================================================================*/
#define DISKFULL(fp) (ferror(fp) && (errno == ENOSPC))
#define FILE_CNT(fp) (fp)->_cnt
#define FILE_BASE(fp) (fp)->_base
#define FILE_PTR(fp) (fp)->_ptr
#define MAXDRIFT 2 /* we insist that abs|(hh-pixel_round(h))<=MAXDRIFT| */
#define MAXOPEN 5
#define VIRTUAL_FONTS 1
#define IBM_PC_MICROSOFT 1
#define LINT_ARGS 1
#define PS_MAXWIDTH 72
#define PS_SHORTLINES 1
#define FALSE 0
#define TRUE 1
#include <stdio.h>
#include <errno.h>
#include <io.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <ctype.h>
#include <math.h>
#define VERSION_NO "2.11 [test]" /* DVI driver version number */
#define DEVICE_ID "Epson 9-pin family 240/216-dpi matrix printer"
#define XDPI 240 /* horizontal dots/inch */
#define YDPI 216 /* vertical dots/inch */
#define XPSIZE 8 /* horizontal paper size in inches */
#define XSIZE (((XDPI*XPSIZE+2*32-1)/\
(2*32))*(2*32))
/* number of horizontal dots; */
/* MUST BE multiple of */
/* 2*32 */
#define XWORDS ((XSIZE + 32 - 1)/32)
/* number of words in rows */
/* of bitmap array */
#define YPSIZE 11 /* vertical paper size in inches */
#define YSIZE (YDPI*YPSIZE) /* number of vertical dots */
#define XBIT XWORDS
#define YBIT YSIZE
#define SETC_000 0
/* SETC_001 .. SETC_126 not required */
#define SETC_127 127
#define SET1 128
#define SET2 129
#define SET3 130
#define SET4 131
#define SET_RULE 132
#define PUT1 133
#define PUT2 134
#define PUT3 135
#define PUT4 136
#define PUT_RULE 137
#define NOP 138
#define BOP 139
#define EOP 140
#define PUSH 141
#define POP 142
#define RIGHT1 143
#define RIGHT2 144
#define RIGHT3 145
#define RIGHT4 146
#define W0 147
#define W1 148
#define W2 149
#define W3 150
#define W4 151
#define X0 152
#define X1 153
#define X2 154
#define X3 155
#define X4 156
#define DOWN1 157
#define DOWN2 158
#define DOWN3 159
#define DOWN4 160
#define Y0 161
#define Y1 162
#define Y2 163
#define Y3 164
#define Y4 165
#define Z0 166
#define Z1 167
#define Z2 168
#define Z3 169
#define Z4 170
#define FONT_00 171
/* FONT_01 .. FONT_62 not required */
#define FONT_63 234
#define FNT1 235
#define FNT2 236
#define FNT3 237
#define FNT4 238
#define XXX1 239
#define XXX2 240
#define XXX3 241
#define XXX4 242
#define FNT_DEF1 243
#define FNT_DEF2 244
#define FNT_DEF3 245
#define FNT_DEF4 246
#define PRE 247
#define POST 248
#define POST_POST 249
/* Command codes for METAFONT .GF font files */
#define GFPAINT0 0
#define GFPAINT1 64
#define GFPAINT2 65
#define GFPAINT3 66
#define GFBOC 67
#define GFBOC1 68
#define GFEOC 69
#define GFSKIP0 70
#define GFSKIP1 71
#define GFSKIP2 72
#define GFSKIP3 73
#define GFNROW0 74
#define GFEOF 223
#define GFNROWMAX 238
#define GFXXX1 239
#define GFXXX2 240
#define GFXXX3 241
#define GFXXX4 242
#define GFYYY 243
#define GFNOOP 244
#define GFCHLOC 245
#define GFCHLOC0 246
#define GFPRE 247
#define GFPOST 248
#define GFPOSTPOST 249
#define GFID 131
/* Command codes for packed (.PK) font files */
#define PKXXX1 240
#define PKXXX2 241
#define PKXXX3 242
#define PKXXX4 243
#define PKYYY 244
#define PKPOST 245
#define PKNOOP 246
#define PKPRE 247
#define PKID 89
#define ABS(x) ((x) < 0 ? -(x) : (x))
#define DBGOPT(flag) (debug_code & (flag))
#define DBG_PAGE_DUMP 0x0001
#define DBG_CHAR_DUMP 0x0002
#define DBG_POS_CHAR 0x0004
#define DBG_OKAY_OPEN 0x0008
#define DBG_FAIL_OPEN 0x0010
#define DBG_OFF_PAGE 0x0020
#define DBG_FONT_CACHE 0x0040
#define DBG_SET_TEXT 0x0080
#define DEBUG_OPEN(fp,fname,openmode) dbgopen(fp,fname,openmode)
#define DVIFORMAT 2
#define FIRSTPXLCHAR 0
#define FT_GF 0
#define FT_PK 1
#define FT_PXL 2
#define IN(a,b,c) (((a) <= (b)) && ((b) <= (c)))
#define LASTPXLCHAR 255
#define MAGSIZE(f) ((unsigned long int)(1000.0*(f) + 0.5))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
#define MAXFONTS 32 /* number of fonts per job (HPLJ, Canon A2) */
#define MAXMSG 1024 /* message[] size--big enough for 2 file names*/
#define MAXPAGE 999 /* limit on number of pages in a DVI file */
#define MAXREQUEST 256 /* limit on number of explicit page print
requests */
#define MAXSPECIAL 500 /* limit on \special{} string size; it need not
be larger than TeX's compile-time parameter
buf_siz, which is 500 in Standard TeX-82 */
#define MAXSTR 257 /* DVI file text string size */
#define MAXFORMATS 12 /* number of font file naming formats */
#define MIN_M -500 /* GF character image extents */
#define MAX_M 1500
#define MIN_N -500
#define MAX_N 1500
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define NEWLINE(fp) {(void)putc((char)'\r',fp);(void)putc((char)'\n',fp);}
/* want <CR><LF> for these systems */
#define NPXLCHARS 256
#define ONES ~0 /* a word of all one bits */
#define PIXROUND(n,c) ((int)(((double)(n))*(c) + 0.5))
#define PXLID 1001
#define SETBIT(m) img_row[(m-min_m) >> 5] |= img_mask[(m-min_m) & 0x1f]
#define TESTBIT(m) img_row[(m-min_m) >> 5] & img_mask[(m-min_m) & 0x1f]
#define RESOLUTION (((double)STDMAG)/5.0) /* dots per inch */
#define STACKSIZE 100
#define VISIBLE(t) ((t->wp > 0) && (t->hp > 0))
/* true if both pixel height and width are non-zero */
#define STDMAG 1200 /* use 240dpi fonts */
#define MAGTABSIZE (sizeof(mag_table) / sizeof(double))
/* ==(declarations)=================================================== */
extern char *normaddr(char *p,int byte_offset);
extern void dispchar(unsigned char c);
extern void dvifile(int argc,char * *argv,char *filestr);
extern void dviinit(char *filestr);
extern void dviterm(void );
extern void findpost(void );
extern int fixpos(int cc,long c,double cnvfac);
extern void getbytes(struct _iobuf *fp,char *cp,unsigned char n);
extern void prtpage(long bytepos);
extern char *normaddr(char *p,int byte_offset);
extern int main(int argc,char * *argv);
extern void abortrun(int code);
extern void alldone(void );
extern void dbgopen(struct _iobuf *fp,char *fname,char *openmode);
extern void devinit(int argc,char * *argv);
extern void devterm(void );
extern void fatal(char *msg);
extern void initglob(void );
extern void option(char *optstr);
extern void outpaperfeed(int count);
extern int strid2(char *string,char *substring);
extern char *tctos(void );
extern void usage(struct _iobuf *fp);
extern void warning(char *msg);
extern char *normaddr(char *p,int byte_offset);
extern double actfact(unsigned long unmodsize);
extern int chargf(unsigned char c,void (*outfcn)());
extern int charpk(unsigned char c,void (*outfcn)());
extern unsigned char get_bit(void );
extern unsigned char get_nybble(void );
extern unsigned int pk_packed_num(void );
extern int charpxl(unsigned char c,void (*outfcn)());
extern void clrbmap(void );
extern void clrrow(void );
extern void fillrect(int x,int y,int width,int height);
extern void fontfile(char * *filelist,char *font_path,char *font_name,int magnification);
extern int fontsub(char *subfont,int *submag,char *TeXfont,int TeXmag);
extern void getfntdf(void );
extern void getpgtab(long lastpageptr);
extern double inch(char *s);
extern void loadchar(unsigned char c);
extern char makechar(unsigned long * *p,unsigned long mask);
extern void movedown(long a);
extern void moveover(long b);
extern void moveto(int x,int y);
extern unsigned long nosignex(struct _iobuf *fp,unsigned char n);
extern void openfont(char *fontname);
extern void virtfree(struct _iobuf *fp);
extern void outline(char *pline);
extern void outrow(unsigned char c,unsigned int yoff);
extern void readfont(long font_k);
extern int readgf(void );
extern int readpk(void );
extern void readpost(void );
extern int readpxl(void );
extern void reldfont(struct font_entry *tfontptr);
extern int rulepxl(unsigned long number,double cnvfac);
extern void setchar(unsigned char c,int update_h);
extern void setfntnm(long k);
extern void setrule(unsigned long height,unsigned long width,int update_h);
extern long signex(struct _iobuf *fp,unsigned char n);
extern void skgfspec(void );
extern void skipfont(long k);
extern void skpkspec(void );
extern void special(char *s);
extern char *normaddr(char *p,int byte_offset);
extern void getbmap(void );
extern void prtbmap(void );
extern unsigned long int *rd_bitmap(int , int);